Skip to content

Codex/int96 compat default#64882

Draft
suxiaogang223 wants to merge 61 commits into
apache:masterfrom
suxiaogang223:codex/int96-compat-default
Draft

Codex/int96 compat default#64882
suxiaogang223 wants to merge 61 commits into
apache:masterfrom
suxiaogang223:codex/int96-compat-default

Conversation

@suxiaogang223

Copy link
Copy Markdown
Member

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

Gabriel39 and others added 30 commits June 26, 2026 09:43
### What problem does this PR solve?

Issue Number: N/A

Related PR: N/A

Problem Summary: Refactor the file table reader stack around the format_v2 reader implementation. This includes the new file reader abstractions, parquet reader components, table reader adapters for Hive/Iceberg/Paimon/JDBC, ColumnMapper filter and projection handling, expression clone support used by file-local filter rewrites, Iceberg row lineage materialization, and related BE unit tests and design notes. This commit is the squashed result of rebasing the current branch onto master.

### Release note

None

### Check List (For Author)

- Test: No need to test (history rewrite only in this step; no code changes beyond the already rebased branch content)
- Behavior changed: No
- Does this need documentation: No
)

### What problem does this PR solve?

This PR refactors the new parquet reader complex-column path around
schema projection and reader creation.

It clarifies `ParquetColumnReaderFactory` recursion, keeps schema
projection as a single public helper, normalizes file-local
`ColumnDefinition` children to Doris semantic children, and folds the
Parquet MAP `key_value/entry` wrapper into the MAP schema node during
parquet schema construction. With that shape, MAP and LIST both expose
direct semantic children to the table/file reader boundary, and
ParquetReader no longer needs a semantic-to-physical projection
translation layer for MAP.

### Release note

None

### Check List

- Test: Manual test
    - Ran `git diff --check`.
- Tried `./run-be-ut.sh -j 8 --run
--filter="ParquetColumnReaderTest.ReadProjectedMapStructValueChildren:ColumnMapperScanRequestTest.MapValueStructProjectionPrunesValueChildren"`,
but local toolchain failed before tests with `ld: library 'c++' not
found`.
- Behavior changed: No
- Does this need documentation: No
…ns (apache#64480)

### What problem does this PR solve?

Localize slot-rooted struct element predicates through ColumnMapping so
renamed nested fields rewrite both selector names and projected file
child return types. Keep computed complex parents and evolved
MAP_KEYS-style filters at the table layer instead of generating unsafe
file-local casts.
    
Rebuild complex scan projections and rematerialize struct children in
table type order, add debug-only block sanity checks with contextual
errors, preserve function-call clone state, and handle nullable Iceberg
delete columns.
    
Move ColumnMapper coverage into column_mapper_test and add tests for
complex child projection, nested predicate projection, map/array
fallback, and file-local conjunct localization boundaries.
### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [ ] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
### What problem does this PR solve?

Issue Number: None

Related PR: apache#63893

Problem Summary: Refresh regression expected outputs for the new Parquet INT96 timestamp semantics. The new reader decodes INT96 timestamps without applying the session timezone offset, so affected Asia/Shanghai-based expectations move 8 hours earlier. This commit updates only the expected result files for the INT96 offset cases in p0 and external suites, while leaving unrelated timestamp failures unchanged.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Verified staged diffs are limited to regression expected-output files.
    - Verified 634 changed lines are exactly timestamp minus 8 hours, with paimon c2 handled as a selective LTZ/INT96 column update.
    - Full regression test not run.
- Behavior changed: No, test expectations only
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: None

Related PR: apache#63893

Problem Summary: The new Parquet reader rejected MAP schemas whose key field is optional with `Unsupported nullable parquet MAP key`, while the old reader only logged a warning and continued. Some external Parquet writers can emit optional MAP keys, and the v2 schema builder already preserves definition levels and exposes MAP key/value types as nullable.

This change removes the schema-level hard rejection for optional MAP keys while keeping the existing structural MAP layout checks.

### Release note

Allow the new Parquet reader to read external Parquet MAP columns with optional key fields.

### Check List (For Author)

- Test: Manual test
    - `build-support/clang-format.sh be/src/format_v2/parquet/parquet_column_schema.cpp`
    - `git diff --check`
- Behavior changed: Yes, the new Parquet reader no longer rejects optional MAP key schemas.
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: None

Related PR: apache#63893

Problem Summary: RuntimeFilterExpr is a wrapper around the concrete runtime filter predicate, but its normal column execution path returned `Not implement RuntimeFilterExpr::execute_column_impl`. Partition pruning for external tables can evaluate runtime filter wrappers as ordinary expressions, so Hive/Iceberg/Paimon runtime filter partition pruning failed before evaluating the wrapped predicate.

This change delegates RuntimeFilterExpr::execute_column_impl to the wrapped implementation. The scan filter path still uses execute_filter, preserving the existing selectivity counters and runtime-filter-specific row filtering behavior.

### Release note

Fix runtime filter wrapper expression execution for external table partition pruning.

### Check List (For Author)

- Test: Manual test
    - `build-support/clang-format.sh be/src/exprs/runtime_filter_expr.cpp`
    - `git diff --check`
- Behavior changed: Yes, runtime filter wrappers can now be evaluated through the normal expression execution path.
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: The new parquet reader resolved decimal columns with precision greater than 38 to TYPE_DECIMAL256, but then marked those columns as unsupported for the scalar record reader. This made external parquet scans fail with errors such as "Current parquet scalar reader does not support column amount" even though the old parquet reader and the decoded decimal serde already support Decimal256 for the common parquet decimal physical carriers. Remove the extra precision-based block so Decimal256 columns can use the existing record reader and decoded serde path, while unsupported physical types remain rejected.

### Release note

Support Decimal256 parquet columns in the new parquet reader.

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh be/src/format_v2/parquet/parquet_type.cpp
    - Ran git diff --check
- Behavior changed: Yes (new parquet reader now accepts parquet decimal columns with precision greater than 38 when they fit Doris Decimal256)
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: The new parquet reader created the FilteredRowsByLazyRead profile counter but did not pass it to the scan scheduler or update it after predicate filtering. As a result lazy materialization profile tests saw zero filtered lazy-read rows even when non-predicate columns were read lazily. Pass the counter into ParquetScanScheduler and update it by the number of rows filtered by conjuncts when non-predicate columns are present.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh be/src/format_v2/parquet/parquet_scan.h be/src/format_v2/parquet/parquet_scan.cpp be/src/format_v2/parquet/parquet_reader.cpp
    - Ran git diff --check
- Behavior changed: No
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: Clean up format_v2 code style after the new parquet reader changes. This change fixes local tidy-style issues in the parquet selection vector by using std::cmp_greater/std::cmp_greater_equal for mixed signed and unsigned comparisons and designated initializers for RowRange construction. It also removes unused include directives from format_v2 implementation files. The format_v2 directory was checked with the repository clang-format script, and the include cleanup was validated by compiling the Fedora DEBUG Format target.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh be/src/format_v2
    - Ran git diff --check
    - Ran targeted clang-tidy on Fedora with checks modernize-use-integer-sign-comparison and modernize-use-designated-initializers for be/src/format_v2/parquet/selection_vector.h using the DEBUG compile database without PCH
    - Ran clang-include-cleaner on selected format_v2 implementation files to collect remove candidates
    - Ran /home/socrates/ldb_toolchain/bin/ninja Format in /home/socrates/code/doris/be/build_DEBUG on Fedora
- Behavior changed: No
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: TeamCity external regression build 970191 still had several expected output files using old timestamp values. The new parquet timestamp semantics return the corrected values for the affected external table cases, including Hive, Iceberg, Paimon, and TVF parquet result files. This commit refreshes the corresponding regression expected outputs from the observed CI results and keeps unrelated non-timestamp failures untouched.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Compared TeamCity build 970191 failure details with the updated expected output files. Full regression test was not rerun locally.
- Behavior changed: No
- Does this need documentation: No
struct type should be use name mode with nested type
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: New parquet profile definitions and wiring were split across ParquetReader, ParquetScan, and column reader headers. This made ParquetReader own counter initialization, pruning counter updates, and scheduler sub-profile assembly directly even though parquet_profile.h already existed for profile-related types. This change centralizes the new parquet RuntimeProfile counter ownership in parquet_profile.h/.cpp and keeps ParquetReader responsible only for invoking the profile helper methods.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh for touched files.
    - Ran git diff --check.
    - Tried ./run-be-ut.sh --run '--filter=NewParquetReaderTest.*', but local CMake compiler detection failed before building Doris because /opt/homebrew/opt/llvm@16/bin/clang++ could not link a simple program: ld: library 'c++' not found.
- Behavior changed: No
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: Align format_v2 implementation namespaces with the format_v2 ownership boundary. Parquet, Hive, Paimon, Iceberg, and JDBC implementations now live under doris::format subnamespaces, while shared format_v2 expression helpers live under doris::format. Call sites and tests were updated to use the new namespace layout.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh on the modified BE files
    - Ran git diff --check
    - Ran namespace residue scans for old doris::parquet/hive/paimon/jdbc/iceberg namespaces and duplicate format::format references
    - Attempted targeted BE UT with ./run-be-ut.sh --run '--filter=NewParquetReaderTest.*:ParquetColumnReaderTest.*:TableReaderTest.*:CastTest.*:DeletePredicateTest.*:EqualityDeletePredicateTest.*', but local CMake compiler detection failed before Doris code compiled because /opt/homebrew/opt/llvm@16/bin/clang++ could not link libc++: ld: library 'c++' not found
- Behavior changed: No
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: The new parquet reader reports timestamp values with the updated INT96 timestamp interpretation for existing external parquet coverage. This commit updates the affected regression expected outputs from the latest TeamCity P0 and external regression real outputs. Doris parquet export/write cases with suspicious timestamp offsets are intentionally excluded because those require separate writer-side analysis.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Validated modified expected rows against TeamCity builds 970619 and 970620 failure logs, and ran `git diff --check`.
- Behavior changed: No
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: apache#63893

Problem Summary: The new parquet reader did not map TIMESTAMP(NANOS) logical columns to a supported Doris timestamp type, and DATETIMEV2 decoded INT64 timestamp values only handled millis and micros. As a result Hive parquet timestamp nanos data was materialized as NULL instead of the expected timestamp values. This change maps parquet timestamp nanos to DATETIMEV2(6), decodes nanos by truncating to microseconds, and adds decoded-value coverage for DATETIMEV2 nanos. It also refreshes the external TVF group4 expected output for a parquet file containing BC timestamp values that Doris cannot represent, where the new reader correctly returns NULL for those rows.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran `git diff --check`.
    - Verified the relevant parquet files with DuckDB to confirm timestamp nanos and BC timestamp source values.
    - Attempted `./run-be-ut.sh --run '--filter=DataTypeSerDeDecodedValuesTest.*'`, but local CMake failed before compiling tests because the macOS toolchain cannot link a simple C++ program: `ld: library 'c++' not found`.
- Behavior changed: Yes. The new parquet reader now reads TIMESTAMP(NANOS) values as DATETIMEV2(6) instead of producing NULL through unsupported conversion.
- Does this need documentation: No
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: Refine the new Parquet reader row group pruning flow so scan range filtering is applied before more expensive statistics, dictionary, bloom filter, and page index pruning. Also document the Parquet reader, scan scheduler, statistics pruning, and nested column reader APIs, and update affected namespace references in BE tests.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran build-support/clang-format.sh on touched BE C++ files and git diff --check locally.
    - Started BE UT validation on Fedora with NewParquetReaderTest.* and ParquetBloomFilterPruningTest.*; fixed compile issues found during validation. Full rerun was interrupted before completion by follow-up history cleanup request.
- Behavior changed: No
- Does this need documentation: No
Rewrite comments for the entry-point and foundational modules:

parquet_reader.h:
- Class-level doc: role boundary, lifecycle (init→get_schema→open→get_block→close)
- TableReader calling relationship explained
- Each method and field annotated

parquet_type.h:
- ParquetExtraTypeInfo: each variant documented
- ParquetTypeDescriptor: full field-by-field descriptions
- Three-level resolution priority (logical→converted→physical) explained
- resolve_parquet_type / supports_record_reader / decoded_value_kind docs

parquet_column_schema.h:
- Class-level doc: design decisions (wrapper folding, nullable, Dremel levels)
- All fields grouped into sections (identifier / type / levels / children)
- Each field annotated with its role and valid domain (PRIMITIVE vs complex)

parquet_column_schema.cpp:
- SchemaBuildContext fields annotated

parquet_file_context.cpp:
- DorisRandomAccessFile adapter class documented

parquet_profile.h:
- All Profile structs with section-based Chinese comments
- Counter groups organized (RG pruning / page skip / batch read / column reader /
  file ops / decompress & cache / decode / others)

Co-Authored-By: Claude <noreply@anthropic.com>
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: The new Parquet scanner does not implement condition cache yet, so the parquet condition cache regression case can fail when the session uses FileScannerV2. Force this case to use the old file scanner path before enabling condition cache and profile checks.

### Release note

None

### Check List (For Author)

- Test: No need to test
    - Regression-only session variable adjustment for an existing case.
- Behavior changed: No
- Does this need documentation: No
@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29062 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 8b8629da23dfa2fca4ea4e81aab70943276df921, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17619	4066	4035	4035
q2	2143	312	187	187
q3	10197	1431	814	814
q4	4686	484	344	344
q5	7516	865	574	574
q6	184	175	142	142
q7	768	859	633	633
q8	9407	1542	1645	1542
q9	5619	4574	4468	4468
q10	6753	1807	1520	1520
q11	439	278	247	247
q12	626	437	307	307
q13	18140	3376	2804	2804
q14	264	259	241	241
q15	q16	795	782	708	708
q17	1007	1029	920	920
q18	7098	5790	5486	5486
q19	1166	1274	1125	1125
q20	497	422	266	266
q21	5544	2486	2392	2392
q22	447	367	307	307
Total cold run time: 100915 ms
Total hot run time: 29062 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4316	4271	4284	4271
q2	314	344	217	217
q3	4565	5004	4327	4327
q4	2066	2163	1356	1356
q5	4466	4332	4332	4332
q6	230	179	135	135
q7	1749	1621	1683	1621
q8	2807	2223	2184	2184
q9	8270	8295	8157	8157
q10	4831	4691	4291	4291
q11	555	411	396	396
q12	786	777	548	548
q13	3197	3644	2919	2919
q14	289	299	285	285
q15	q16	737	729	653	653
q17	1334	1386	1301	1301
q18	8036	7360	7288	7288
q19	1200	1134	1189	1134
q20	2217	2240	1926	1926
q21	5335	4646	4466	4466
q22	542	461	401	401
Total cold run time: 57842 ms
Total hot run time: 52208 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 171372 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 8b8629da23dfa2fca4ea4e81aab70943276df921, data reload: false

query5	4333	650	481	481
query6	478	190	164	164
query7	4832	590	305	305
query8	348	184	161	161
query9	8783	3982	3993	3982
query10	460	310	264	264
query11	5936	2342	2168	2168
query12	163	100	99	99
query13	1257	570	446	446
query14	6276	5288	4941	4941
query14_1	4286	4280	4275	4275
query15	219	202	178	178
query16	1014	436	433	433
query17	958	733	603	603
query18	2442	514	339	339
query19	200	180	139	139
query20	114	107	105	105
query21	212	142	128	128
query22	13600	13565	13428	13428
query23	17322	16497	16128	16128
query23_1	16207	16247	16321	16247
query24	7628	1760	1303	1303
query24_1	1298	1295	1299	1295
query25	540	444	383	383
query26	1315	325	168	168
query27	2718	557	345	345
query28	4417	2014	2015	2014
query29	1078	614	476	476
query30	313	233	201	201
query31	1106	1069	947	947
query32	118	60	58	58
query33	500	324	254	254
query34	1188	1144	648	648
query35	755	796	671	671
query36	1395	1405	1240	1240
query37	156	104	89	89
query38	1915	1717	1659	1659
query39	916	926	897	897
query39_1	870	877	890	877
query40	228	121	100	100
query41	65	65	62	62
query42	94	87	88	87
query43	321	325	279	279
query44	1417	770	780	770
query45	207	179	179	179
query46	1053	1227	714	714
query47	2378	2356	2259	2259
query48	415	385	291	291
query49	581	431	322	322
query50	1042	351	259	259
query51	4407	4523	4287	4287
query52	79	81	68	68
query53	251	256	189	189
query54	267	216	190	190
query55	70	68	63	63
query56	229	216	213	213
query57	1437	1400	1328	1328
query58	264	213	219	213
query59	1573	1637	1406	1406
query60	291	237	230	230
query61	154	149	153	149
query62	715	644	575	575
query63	239	191	202	191
query64	2536	765	586	586
query65	4887	4833	4750	4750
query66	1802	448	339	339
query67	28779	28796	28584	28584
query68	3123	1628	907	907
query69	417	298	253	253
query70	1074	981	971	971
query71	308	224	207	207
query72	2973	2631	2309	2309
query73	814	775	411	411
query74	5103	4933	4737	4737
query75	2571	2545	2167	2167
query76	2311	1162	766	766
query77	345	378	286	286
query78	12437	12329	11852	11852
query79	1246	1174	784	784
query80	520	461	371	371
query81	443	278	236	236
query82	236	158	124	124
query83	269	273	251	251
query84	299	141	114	114
query85	841	517	484	484
query86	361	311	295	295
query87	1848	1828	1764	1764
query88	3708	2819	2780	2780
query89	412	393	334	334
query90	2187	189	180	180
query91	186	174	147	147
query92	67	65	58	58
query93	1554	1487	890	890
query94	550	352	331	331
query95	706	397	383	383
query96	1114	833	366	366
query97	2670	2694	2580	2580
query98	217	204	198	198
query99	1202	1158	1022	1022
Total cold run time: 255930 ms
Total hot run time: 171372 ms

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 60.00% (3/5) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.15 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 8b8629da23dfa2fca4ea4e81aab70943276df921, data reload: false

query1	0.01	0.01	0.01
query2	0.10	0.05	0.05
query3	0.26	0.14	0.14
query4	1.60	0.14	0.14
query5	0.24	0.26	0.23
query6	1.21	1.08	1.02
query7	0.04	0.00	0.00
query8	0.05	0.03	0.04
query9	0.41	0.32	0.31
query10	0.60	0.56	0.56
query11	0.21	0.14	0.14
query12	0.17	0.14	0.14
query13	0.47	0.49	0.46
query14	1.00	1.01	1.00
query15	0.62	0.59	0.60
query16	0.34	0.31	0.32
query17	1.11	1.10	1.13
query18	0.23	0.21	0.22
query19	2.08	1.92	1.98
query20	0.02	0.01	0.02
query21	15.43	0.22	0.12
query22	4.89	0.05	0.05
query23	16.11	0.30	0.12
query24	2.95	0.44	0.33
query25	0.12	0.06	0.04
query26	0.81	0.23	0.15
query27	0.05	0.04	0.04
query28	3.52	0.94	0.51
query29	12.47	4.32	3.47
query30	0.27	0.15	0.16
query31	2.79	0.59	0.31
query32	3.23	0.60	0.50
query33	3.30	3.18	3.28
query34	15.56	4.18	3.51
query35	3.50	3.51	3.55
query36	0.59	0.44	0.43
query37	0.10	0.06	0.07
query38	0.05	0.04	0.04
query39	0.04	0.03	0.03
query40	0.18	0.16	0.15
query41	0.08	0.03	0.03
query42	0.04	0.03	0.02
query43	0.04	0.03	0.03
Total cold run time: 96.89 s
Total hot run time: 25.15 s

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.00% (0/278) 🎉
Increment coverage report
Complete coverage report

@suxiaogang223 suxiaogang223 force-pushed the codex/int96-compat-default branch from 8b8629d to 9562bbb Compare June 26, 2026 13:58
@suxiaogang223

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.38% (1895/2449)
Line Coverage 64.47% (34012/52753)
Region Coverage 64.88% (17501/26973)
Branch Coverage 54.08% (9379/17344)

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 28727 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 9562bbbe6bc81edfb8c5fb436e63d1f0d94ca4b2, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17423	3923	3928	3923
q2	1997	317	200	200
q3	10221	1357	825	825
q4	4687	467	337	337
q5	7524	841	562	562
q6	184	171	133	133
q7	758	830	623	623
q8	9378	1502	1572	1502
q9	5509	4461	4471	4461
q10	6735	1763	1521	1521
q11	446	280	248	248
q12	628	427	290	290
q13	18086	3360	2795	2795
q14	276	255	234	234
q15	q16	774	776	705	705
q17	1408	993	874	874
q18	6748	5758	5457	5457
q19	1328	1374	1031	1031
q20	483	414	270	270
q21	5580	2652	2436	2436
q22	423	362	300	300
Total cold run time: 100596 ms
Total hot run time: 28727 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4333	4225	4282	4225
q2	309	340	222	222
q3	4533	4907	4386	4386
q4	2054	2118	1361	1361
q5	4423	4268	4294	4268
q6	227	177	126	126
q7	1719	1608	1448	1448
q8	2785	2209	2168	2168
q9	8081	8086	7989	7989
q10	4790	4741	4348	4348
q11	577	407	376	376
q12	747	734	551	551
q13	3163	3807	2928	2928
q14	293	329	280	280
q15	q16	745	726	659	659
q17	1347	1352	1337	1337
q18	7920	7198	7391	7198
q19	1108	1092	1104	1092
q20	2212	2227	1939	1939
q21	5264	4540	4345	4345
q22	520	444	411	411
Total cold run time: 57150 ms
Total hot run time: 51657 ms

@suxiaogang223

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 171748 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 9562bbbe6bc81edfb8c5fb436e63d1f0d94ca4b2, data reload: false

query5	4327	634	503	503
query6	447	192	171	171
query7	4811	570	296	296
query8	336	182	170	170
query9	8733	4069	4063	4063
query10	430	311	257	257
query11	5957	2319	2137	2137
query12	152	100	103	100
query13	1269	606	419	419
query14	6660	5295	5021	5021
query14_1	4326	4326	4312	4312
query15	214	203	180	180
query16	1023	471	457	457
query17	1147	714	609	609
query18	2752	479	360	360
query19	205	189	151	151
query20	114	108	106	106
query21	225	146	114	114
query22	13766	13675	13375	13375
query23	17324	16396	16089	16089
query23_1	16160	16236	16227	16227
query24	7473	1766	1290	1290
query24_1	1340	1302	1300	1300
query25	579	458	390	390
query26	1323	308	159	159
query27	2622	558	358	358
query28	4380	2025	2028	2025
query29	1104	635	488	488
query30	319	231	199	199
query31	1142	1075	949	949
query32	118	63	62	62
query33	550	321	271	271
query34	1161	1152	669	669
query35	805	784	665	665
query36	1380	1403	1242	1242
query37	160	110	97	97
query38	1893	1715	1676	1676
query39	928	917	891	891
query39_1	894	883	875	875
query40	220	164	100	100
query41	65	61	65	61
query42	89	88	86	86
query43	316	321	279	279
query44	1446	792	785	785
query45	219	191	180	180
query46	1058	1248	741	741
query47	2389	2316	2237	2237
query48	401	433	299	299
query49	580	425	313	313
query50	1051	352	255	255
query51	4441	4297	4339	4297
query52	79	80	69	69
query53	248	265	192	192
query54	273	225	198	198
query55	72	71	70	70
query56	235	234	227	227
query57	1428	1401	1292	1292
query58	250	220	209	209
query59	1541	1634	1453	1453
query60	277	242	219	219
query61	153	145	157	145
query62	726	641	565	565
query63	225	188	192	188
query64	2485	744	589	589
query65	4907	4803	4760	4760
query66	1744	465	338	338
query67	28823	28720	28675	28675
query68	3193	1622	1034	1034
query69	403	292	259	259
query70	1102	996	970	970
query71	295	236	214	214
query72	2948	2615	2342	2342
query73	860	851	445	445
query74	5093	4947	4753	4753
query75	2577	2549	2157	2157
query76	2279	1188	817	817
query77	364	378	294	294
query78	12316	12458	11761	11761
query79	1430	1239	773	773
query80	1308	473	386	386
query81	518	276	243	243
query82	614	155	120	120
query83	318	272	247	247
query84	271	141	117	117
query85	905	525	415	415
query86	423	295	289	289
query87	1856	1835	1786	1786
query88	3753	2785	2760	2760
query89	435	392	333	333
query90	1959	179	178	178
query91	173	167	135	135
query92	60	64	57	57
query93	1598	1492	889	889
query94	735	352	319	319
query95	676	478	348	348
query96	1113	874	361	361
query97	2681	2669	2578	2578
query98	215	220	205	205
query99	1164	1159	1049	1049
Total cold run time: 258335 ms
Total hot run time: 171748 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.82 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 9562bbbe6bc81edfb8c5fb436e63d1f0d94ca4b2, data reload: false

query1	0.01	0.00	0.01
query2	0.14	0.11	0.09
query3	0.37	0.25	0.24
query4	1.62	0.25	0.24
query5	0.33	0.31	0.32
query6	1.16	0.66	0.67
query7	0.04	0.01	0.01
query8	0.09	0.07	0.07
query9	0.50	0.37	0.38
query10	0.59	0.57	0.58
query11	0.31	0.19	0.18
query12	0.31	0.19	0.18
query13	0.51	0.53	0.54
query14	0.93	0.92	0.93
query15	0.67	0.59	0.58
query16	0.38	0.39	0.38
query17	1.04	1.02	1.00
query18	0.30	0.29	0.28
query19	1.92	1.79	1.83
query20	0.02	0.01	0.01
query21	15.39	0.36	0.32
query22	4.81	0.14	0.14
query23	15.82	0.48	0.31
query24	2.41	0.62	0.46
query25	0.15	0.11	0.10
query26	0.75	0.28	0.21
query27	0.10	0.10	0.10
query28	3.44	0.88	0.52
query29	12.44	4.49	3.52
query30	0.38	0.26	0.26
query31	2.76	0.62	0.33
query32	3.23	0.60	0.47
query33	2.95	3.08	3.01
query34	15.71	4.07	3.33
query35	3.25	3.25	3.25
query36	0.64	0.52	0.49
query37	0.12	0.10	0.09
query38	0.08	0.07	0.07
query39	0.07	0.06	0.06
query40	0.21	0.19	0.18
query41	0.13	0.09	0.08
query42	0.08	0.05	0.07
query43	0.07	0.07	0.06
Total cold run time: 96.23 s
Total hot run time: 25.82 s

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29046 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 06a6459f0a0e14d09070852ad0e0d8aa5f1ff2ab, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17689	4225	4107	4107
q2	2006	318	196	196
q3	10304	1501	825	825
q4	4685	463	342	342
q5	7506	864	586	586
q6	180	170	134	134
q7	775	844	622	622
q8	9354	1529	1611	1529
q9	5522	4476	4431	4431
q10	6766	1817	1529	1529
q11	439	274	245	245
q12	626	415	289	289
q13	18100	3402	2763	2763
q14	270	259	236	236
q15	q16	775	781	709	709
q17	1020	1042	992	992
q18	6752	5803	5454	5454
q19	1154	1264	1053	1053
q20	480	403	267	267
q21	5277	2674	2438	2438
q22	431	357	299	299
Total cold run time: 100111 ms
Total hot run time: 29046 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4412	4328	4412	4328
q2	310	336	219	219
q3	4542	4973	4361	4361
q4	2065	2141	1358	1358
q5	4381	4244	4255	4244
q6	232	182	125	125
q7	1739	1611	1488	1488
q8	3015	2240	2217	2217
q9	8256	8413	8243	8243
q10	4824	4771	4346	4346
q11	567	416	376	376
q12	750	768	559	559
q13	3259	3684	2978	2978
q14	319	319	286	286
q15	q16	715	735	638	638
q17	1348	1323	1331	1323
q18	8052	7297	7326	7297
q19	1166	1161	1102	1102
q20	2236	2224	1944	1944
q21	5228	4555	4419	4419
q22	508	463	413	413
Total cold run time: 57924 ms
Total hot run time: 52264 ms

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 60.00% (3/5) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 171255 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 06a6459f0a0e14d09070852ad0e0d8aa5f1ff2ab, data reload: false

query5	4323	639	481	481
query6	434	188	164	164
query7	4900	570	297	297
query8	331	176	163	163
query9	8752	4039	4003	4003
query10	459	308	259	259
query11	5888	2352	2118	2118
query12	163	102	104	102
query13	1340	622	411	411
query14	6282	5315	4934	4934
query14_1	4273	4278	4263	4263
query15	219	198	186	186
query16	1021	453	410	410
query17	1123	706	575	575
query18	2466	460	328	328
query19	194	202	139	139
query20	110	106	105	105
query21	214	142	114	114
query22	13588	13506	13417	13417
query23	17383	16518	16090	16090
query23_1	16286	16168	16171	16168
query24	7655	1776	1277	1277
query24_1	1318	1279	1271	1271
query25	555	446	400	400
query26	1304	325	164	164
query27	2682	570	351	351
query28	4488	2007	2005	2005
query29	1085	628	504	504
query30	310	237	209	209
query31	1121	1088	969	969
query32	106	66	61	61
query33	531	328	261	261
query34	1200	1152	691	691
query35	796	802	677	677
query36	1384	1392	1171	1171
query37	159	108	93	93
query38	1886	1732	1674	1674
query39	937	922	900	900
query39_1	879	876	876	876
query40	225	126	103	103
query41	70	71	70	70
query42	91	89	92	89
query43	322	329	282	282
query44	1431	797	795	795
query45	215	204	185	185
query46	1067	1287	774	774
query47	2404	2322	2249	2249
query48	403	423	288	288
query49	592	433	327	327
query50	992	343	268	268
query51	4457	4377	4347	4347
query52	84	84	73	73
query53	261	263	193	193
query54	283	231	217	217
query55	76	71	69	69
query56	252	242	233	233
query57	1438	1379	1311	1311
query58	250	222	218	218
query59	1604	1650	1450	1450
query60	309	260	269	260
query61	175	167	178	167
query62	692	651	563	563
query63	238	188	196	188
query64	2539	754	582	582
query65	4905	4767	4784	4767
query66	1765	448	329	329
query67	28981	28769	28729	28729
query68	3310	1508	888	888
query69	423	318	258	258
query70	1045	945	963	945
query71	285	229	197	197
query72	2905	2763	2335	2335
query73	844	755	441	441
query74	5260	4942	4831	4831
query75	2592	2540	2173	2173
query76	2311	1166	776	776
query77	338	376	284	284
query78	12502	12485	11859	11859
query79	1429	1155	736	736
query80	1276	469	369	369
query81	521	277	237	237
query82	600	154	121	121
query83	339	277	252	252
query84	253	142	111	111
query85	897	525	406	406
query86	419	302	279	279
query87	1845	1824	1767	1767
query88	3691	2759	2754	2754
query89	425	386	335	335
query90	1909	182	178	178
query91	172	181	133	133
query92	60	60	55	55
query93	1644	1599	854	854
query94	709	364	291	291
query95	694	457	351	351
query96	1064	816	334	334
query97	2679	2691	2552	2552
query98	222	209	197	197
query99	1171	1170	1049	1049
Total cold run time: 258574 ms
Total hot run time: 171255 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.23 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 06a6459f0a0e14d09070852ad0e0d8aa5f1ff2ab, data reload: false

query1	0.01	0.01	0.01
query2	0.09	0.05	0.04
query3	0.26	0.13	0.17
query4	1.61	0.14	0.14
query5	0.24	0.23	0.23
query6	1.27	1.06	1.08
query7	0.03	0.01	0.00
query8	0.06	0.04	0.04
query9	0.40	0.31	0.31
query10	0.58	0.57	0.57
query11	0.20	0.15	0.14
query12	0.19	0.14	0.14
query13	0.47	0.48	0.48
query14	1.03	1.02	1.00
query15	0.60	0.59	0.59
query16	0.32	0.33	0.32
query17	1.12	1.11	1.08
query18	0.23	0.21	0.21
query19	2.02	1.92	1.97
query20	0.02	0.01	0.01
query21	15.46	0.22	0.13
query22	4.94	0.05	0.06
query23	16.10	0.31	0.13
query24	2.89	0.41	0.33
query25	0.11	0.05	0.04
query26	0.74	0.22	0.14
query27	0.05	0.04	0.03
query28	3.51	0.92	0.53
query29	12.49	4.38	3.45
query30	0.28	0.15	0.16
query31	2.77	0.60	0.31
query32	3.22	0.60	0.49
query33	3.27	3.24	3.20
query34	15.78	4.18	3.53
query35	3.54	3.50	3.57
query36	0.56	0.45	0.41
query37	0.09	0.07	0.07
query38	0.05	0.04	0.04
query39	0.03	0.03	0.03
query40	0.18	0.17	0.16
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.97 s
Total hot run time: 25.23 s

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.38% (1895/2449)
Line Coverage 64.43% (33989/52753)
Region Coverage 64.81% (17480/26973)
Branch Coverage 54.02% (9370/17344)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 40.00% (2/5) 🎉
Increment coverage report
Complete coverage report

@suxiaogang223

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29321 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 6c487f102b8fa20c4f01602f8ebda7f802068944, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17628	4047	3993	3993
q2	2043	315	207	207
q3	10307	1487	829	829
q4	4683	478	334	334
q5	7570	854	591	591
q6	181	169	137	137
q7	768	832	620	620
q8	9334	1601	1665	1601
q9	5579	4527	4510	4510
q10	6800	1809	1532	1532
q11	436	287	245	245
q12	637	425	308	308
q13	18088	3422	2781	2781
q14	270	257	237	237
q15	q16	785	775	715	715
q17	957	921	1016	921
q18	6961	5836	5641	5641
q19	1184	1295	1144	1144
q20	478	412	269	269
q21	5598	2591	2396	2396
q22	442	362	310	310
Total cold run time: 100729 ms
Total hot run time: 29321 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4350	4221	4252	4221
q2	313	347	220	220
q3	4618	4975	4437	4437
q4	2046	2169	1381	1381
q5	4462	4271	4292	4271
q6	228	179	130	130
q7	1728	1651	1732	1651
q8	2738	2209	2179	2179
q9	8218	8375	8102	8102
q10	4779	4737	4327	4327
q11	576	412	375	375
q12	745	766	547	547
q13	3177	3572	2957	2957
q14	300	309	295	295
q15	q16	756	731	635	635
q17	1343	1324	1314	1314
q18	8170	7296	7283	7283
q19	1202	1148	1167	1148
q20	2229	2231	1952	1952
q21	5238	4593	4487	4487
q22	545	438	403	403
Total cold run time: 57761 ms
Total hot run time: 52315 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 171835 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 6c487f102b8fa20c4f01602f8ebda7f802068944, data reload: false

query5	4318	649	486	486
query6	445	184	194	184
query7	4826	581	300	300
query8	331	185	173	173
query9	8800	4023	4015	4015
query10	432	333	263	263
query11	5947	2333	2122	2122
query12	153	103	109	103
query13	1277	607	424	424
query14	6248	5271	4940	4940
query14_1	4300	4284	4281	4281
query15	221	204	179	179
query16	1021	478	435	435
query17	921	690	574	574
query18	2416	478	335	335
query19	196	181	145	145
query20	113	106	102	102
query21	222	138	118	118
query22	13557	13535	13477	13477
query23	17501	16508	16338	16338
query23_1	16308	16373	16335	16335
query24	7600	1794	1302	1302
query24_1	1337	1313	1329	1313
query25	578	467	410	410
query26	1296	316	175	175
query27	2686	541	365	365
query28	4496	2035	2019	2019
query29	1090	643	497	497
query30	314	240	206	206
query31	1125	1093	949	949
query32	106	61	60	60
query33	522	333	254	254
query34	1201	1107	660	660
query35	762	774	688	688
query36	1421	1389	1213	1213
query37	163	113	94	94
query38	1899	1718	1697	1697
query39	932	934	902	902
query39_1	887	893	872	872
query40	233	135	107	107
query41	71	71	68	68
query42	93	88	93	88
query43	324	325	280	280
query44	1419	801	786	786
query45	210	198	183	183
query46	1058	1209	716	716
query47	2413	2342	2233	2233
query48	417	430	300	300
query49	588	420	334	334
query50	1036	361	262	262
query51	4397	4407	4321	4321
query52	84	84	73	73
query53	261	263	192	192
query54	280	236	217	217
query55	75	72	68	68
query56	268	244	225	225
query57	1448	1393	1349	1349
query58	263	226	227	226
query59	1593	1678	1442	1442
query60	297	257	242	242
query61	176	216	147	147
query62	693	646	590	590
query63	227	195	194	194
query64	2544	768	604	604
query65	4857	4804	4795	4795
query66	1770	458	342	342
query67	28269	28792	28665	28665
query68	3339	1515	983	983
query69	414	308	274	274
query70	1022	957	980	957
query71	291	231	213	213
query72	3008	2260	2381	2260
query73	823	805	450	450
query74	5164	4990	4781	4781
query75	2582	2551	2182	2182
query76	2334	1197	775	775
query77	351	376	281	281
query78	12338	12544	11829	11829
query79	1296	1195	756	756
query80	565	474	382	382
query81	447	285	245	245
query82	616	155	119	119
query83	350	275	244	244
query84	307	146	111	111
query85	868	514	429	429
query86	358	305	292	292
query87	1870	1832	1778	1778
query88	3698	2789	2800	2789
query89	430	387	349	349
query90	1995	216	182	182
query91	169	163	131	131
query92	63	58	58	58
query93	1543	1573	895	895
query94	561	370	305	305
query95	687	396	360	360
query96	1052	777	333	333
query97	2672	2695	2543	2543
query98	215	206	205	205
query99	1181	1137	1013	1013
Total cold run time: 256397 ms
Total hot run time: 171835 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.33 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 6c487f102b8fa20c4f01602f8ebda7f802068944, data reload: false

query1	0.00	0.00	0.00
query2	0.10	0.05	0.05
query3	0.25	0.14	0.14
query4	1.61	0.14	0.15
query5	0.24	0.22	0.22
query6	1.26	1.08	1.09
query7	0.05	0.01	0.01
query8	0.06	0.04	0.04
query9	0.38	0.32	0.31
query10	0.54	0.60	0.55
query11	0.20	0.14	0.13
query12	0.19	0.15	0.15
query13	0.47	0.48	0.48
query14	1.03	1.01	1.01
query15	0.61	0.59	0.59
query16	0.33	0.31	0.30
query17	1.09	1.09	1.10
query18	0.23	0.20	0.20
query19	1.99	1.96	1.96
query20	0.02	0.01	0.02
query21	15.43	0.22	0.14
query22	4.90	0.05	0.04
query23	16.17	0.31	0.13
query24	2.93	0.38	0.32
query25	0.12	0.05	0.04
query26	0.74	0.20	0.16
query27	0.04	0.04	0.03
query28	3.49	0.93	0.52
query29	12.56	4.37	3.50
query30	0.27	0.14	0.16
query31	2.77	0.60	0.31
query32	3.24	0.60	0.49
query33	3.17	3.23	3.22
query34	15.52	4.16	3.54
query35	3.64	3.54	3.51
query36	0.56	0.44	0.42
query37	0.10	0.07	0.06
query38	0.05	0.04	0.04
query39	0.03	0.02	0.02
query40	0.18	0.17	0.15
query41	0.08	0.03	0.03
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.72 s
Total hot run time: 25.33 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 71.13% (10990/15451) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 55.79% (22572/40458)
Line Coverage 39.44% (218206/553324)
Region Coverage 35.50% (172484/485804)
Branch Coverage 36.56% (76541/209349)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 81.87% (12610/15403) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 74.46% (29404/39489)
Line Coverage 58.41% (321308/550079)
Region Coverage 55.35% (270045/487880)
Branch Coverage 56.48% (118373/209592)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 40.00% (2/5) 🎉
Increment coverage report
Complete coverage report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants